/* 封装axios用于发送请求 */
import { Toast } from 'vant'
import axios from 'axios'
import router from '../router/index'
// 利用 axios.create 创建一个自定义的 axios 来使用
// 创建一个新的axios实例
import { getToken } from './storage'
import { delToken } from './storage'
const request = axios.create({
    baseURL: 'http://interview-api-t.itheima.net/h5/',
    timeout: 5000
})

// 添加请求拦截器
request.interceptors.request.use(function(config) {
    // 在发送请求之前做些什么
    //每次自己携带token太麻烦，通过请求拦截器统一携带token更方便
    const token = getToken()
    if (token) {
        config.headers.Authorization = `Bearer ${token}`
    }
    return config;
}, function(error) {

    // 对请求错误做些什么
    return Promise.reject(error);
});

// 添加响应拦截器
//响应拦截器-处理token过期
request.interceptors.response.use(function(response) {
    // 对响应数据做点什么

    return response.data;
}, function(error) {
    // 对响应错误做点什么
    console.log(error);
    Toast.fail(error.response.data.message)
    if (error.response.data.code == 401) {
        //如果token失效或者过期,清空本地缓存的token,跳转登录页
        delToken()
        console.log(router) //undefined
        router.push('/login')


    }
    return Promise.reject(error);
});
export default request